1500
|
How can I add a Zero-Lenght bar
with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Tasks');
(IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
(IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
(IUnknown(Add('Duration')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258);
end;
with Chart do
begin
FirstVisibleDate := '9/20/2010';
LevelCount := 2;
PaneWidth[False] := 256;
AllowLinkBars := False;
end;
with Items do
begin
AllowCellValueToItemBar := True;
h1 := AddItem('M1');
AddBar(h1,'Milestone','9/29/2010','9/29/2010',Null,Null);
ItemBar[h1,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
end;
EndUpdate();
end
|
1499
|
Can I use bars like Milestone (Zero-Length bar) in SchedulePDM

// BarResizing event - Occurs when a bar is moving or resizing.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
with G2antt1 do
begin
OutputDebugString( Items.SchedulePDM(Item,OleVariant(Key)) );
end
end;
with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Tasks');
(IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
(IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
(IUnknown(Add('Duration')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258);
end;
with ConditionalFormats.Add('%3',Null) do
begin
Bold := True;
ApplyTo := EXG2ANTTLib_TLB.exFormatToItems;
end;
with ConditionalFormats.Add('%3 = 0',Null) do
begin
ForeColor := $c4c4c4;
ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($3);
end;
with Chart do
begin
FirstVisibleDate := '9/20/2010';
LevelCount := 2;
PaneWidth[False] := 256;
Bars.Add('Task:Split').Shortcut := 'Task';
end;
with Items do
begin
AllowCellValueToItemBar := True;
h1 := AddItem('M1');
AddBar(h1,'Milestone','9/27/2010','9/27/2010',Null,Null);
ItemBar[h1,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
h2 := AddItem('T1');
AddBar(h2,'Task','9/27/2010','9/27/2010',Null,Null);
ItemBar[h2,'',EXG2ANTTLib_TLB.exBarEndInclusive] := '9/27/2010';
ItemBar[h2,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
AddLink('L1',h1,'',h2,'');
h3 := AddItem('T2');
AddBar(h3,'Task','9/27/2010','9/27/2010',Null,Null);
ItemBar[h3,'',EXG2ANTTLib_TLB.exBarEndInclusive] := '9/27/2010';
ItemBar[h3,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
AddLink('L2',h1,'',h3,'');
Link['L2',EXG2ANTTLib_TLB.exLinkPDMWorkingDelay] := OleVariant(5);
h4 := AddItem('M3');
AddBar(h4,'Milestone','9/27/2010','9/27/2010',Null,Null);
ItemBar[h4,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(False);
AddLink('L3',h1,'',h4,'');
Link['L3',EXG2ANTTLib_TLB.exLinkPDMWorkingDelay] := OleVariant(5);
SchedulePDM(0,'');
end;
EndUpdate();
end
|
1498
|
How can I prevent vertical scrolling when user clicks the overview part of the control

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
with G2antt1 do
begin
with Items do
begin
AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null);
end;
end
end;
with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
FirstVisibleDate := '8/3/1994';
PaneWidth[False] := 256;
LevelCount := 2;
UnitScale := EXG2ANTTLib_TLB.exDay;
FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAllVisible;
end;
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Items.AllowCellValueToItemBar := True;
Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
EndUpdate();
end
|
1497
|
I need to specify the start and end dates of the bar to be the same, but no bars are shown. (recommended for bars with exBarKeepWorkingCount ) What I can do

with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Tasks');
(IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
(IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
end;
with Chart do
begin
FirstVisibleDate := '9/20/2006';
LevelCount := 2;
PaneWidth[False] := 256;
ShowEmptyBars := 0;
end;
with Items do
begin
AllowCellValueToItemBar := True;
h := AddItem('Task 1');
AddBar(h,'Task','9/21/2006','9/21/2006',Null,Null);
ItemBar[h,'',EXG2ANTTLib_TLB.exBarEndInclusive] := ItemBar[h,'',EXG2ANTTLib_TLB.exBarStart];
ItemBar[h,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
h := AddItem('Task 2');
AddBar(h,'Task','9/21/2006','9/21/2006',Null,Null);
ItemBar[h,'',EXG2ANTTLib_TLB.exBarEndInclusive] := '9/25/2006';
ItemBar[h,'',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
end;
EndUpdate();
end
|
1496
|
How can I display the end date to be the last visible date of task, instead the next day

// BarResize event - Occurs when a bar is moved or resized.
procedure TForm1.G2antt1BarResize(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
with G2antt1 do
begin
Items.SchedulePDM(Item,OleVariant(Key));
end
end;
// BarResizing event - Occurs when a bar is moving or resizing.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
with G2antt1 do
begin
Items.SchedulePDM(Item,OleVariant(Key));
end
end;
with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
HeaderHeight := 36;
with Columns do
begin
Add('Tasks');
(IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
with (IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column) do
begin
HTMLCaption := '<b>End</b><br>Inclusive';
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
Editor.EditType := EXG2ANTTLib_TLB.DateType;
end;
(IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
end;
with ConditionalFormats.Add(1,Null) do
begin
Bold := True;
ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($2);
end;
with Chart do
begin
FirstVisibleDate := '9/20/2006';
LevelCount := 2;
PaneWidth[False] := 256;
Bars.Add('Task:Split').Shortcut := 'Task';
end;
with Items do
begin
AllowCellValueToItemBar := True;
h1 := AddItem('Task 1');
AddBar(h1,'Task','9/21/2006','9/23/2006',Null,Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','9/21/2006','9/26/2006',Null,Null);
AddLink('link',h1,'',h2,'');
ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
SchedulePDM(0,'');
end;
EndUpdate();
end
|
1495
|
How do I hide the selection
with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
SelForeColor := ForeColor;
SelBackColor := BackColor;
ShowFocusRect := False;
with Columns do
begin
with (IUnknown(Add('Format')) as EXG2ANTTLib_TLB.Column) do
begin
FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' +
'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
end;
end;
with Items do
begin
AddItem(OleVariant(10));
AddItem(OleVariant(-8));
end;
EndUpdate();
end
|
1494
|
How do I access the cells, or how do I get the values in the columns
with G2antt1 do
begin
with Columns do
begin
Add('C1');
Add('C2');
Add('C3');
end;
with Items do
begin
h := AddItem('Item 1');
CellValue[OleVariant(h),OleVariant(1)] := 'SubItem 1.1';
CellValue[OleVariant(h),OleVariant(2)] := 'SubItem 1.2';
OutputDebugString( CellValue[OleVariant(h),OleVariant(1)] );
end;
end
|
1493
|
Is there any function I can use to indicate the Now() when using the ComputedFields, CondtionalFormats, ...
with G2antt1 do
begin
(IUnknown(Columns.Add('Now')) as EXG2ANTTLib_TLB.Column).ComputedField := 'date(``)';
Items.AddItem('');
end
|
1492
|
How can I get the start and end points of the bar once the BarResize event occurs
// BarResize event - Occurs when a bar is moved or resized.
procedure TForm1.G2antt1BarResize(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
with G2antt1 do
begin
OutputDebugString( 'Start: ' );
OutputDebugString( Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarStart] );
OutputDebugString( 'End: ' );
OutputDebugString( Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarEnd] );
end
end;
with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
FirstVisibleDate := '12/31/2009';
LevelCount := 2;
PaneWidth[False] := 96;
var_Bar := Bars.Item['Task'];
end;
Columns.Add('Types');
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/4/2010','1/9/2010','',Null);
AddBar(AddItem('Task 2'),'Task','1/4/2010','1/9/2010','',Null);
end;
EndUpdate();
end
|
1491
|
My chart displays hours, the question would be if possible to let user resizes the bars up to 1/2 hour, or a half an hour
with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
with Chart do
begin
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
LevelCount := 2;
UnitScale := EXG2ANTTLib_TLB.exHour;
ResizeUnitScale := EXG2ANTTLib_TLB.exMinute;
ResizeUnitCount := 30;
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
Level[1].DrawGridLines := True;
end;
with Items do
begin
AddItem('Task');
AddItem('Task');
AddItem('Task');
AddItem('Task');
AddItem('Task');
end;
EndUpdate();
end
|
1490
|
How can I show the dates in the title
with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
FirstVisibleDate := '12/30/2002';
LevelCount := 2;
PaneWidth[False] := 0;
UnitScale := EXG2ANTTLib_TLB.exHour;
DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
Level[0].Alignment := Integer(EXG2ANTTLib_TLB.exHOutside) Or Integer(EXG2ANTTLib_TLB.CenterAlignment);
end;
EndUpdate();
end
|
1489
|
If I vertically scroll the control the image flows fluently. But when I scroll on the horizontal chart's scrollbar the images only shows after I release the click button. Can I make it scroll fluently like the vertical scrollbar
with G2antt1 do
begin
Chart.PaneWidth[False] := 0;
Chart.ToolTip := '';
end
|
1488
|
How can I programmatically add a bar during the CreateBar event
// CreateBar event - Fired when the user creates a new bar.
procedure TForm1.G2antt1CreateBar(ASender: TObject; Item : HITEM;DateStart : TDateTime;DateEnd : TDateTime);
begin
with G2antt1 do
begin
with Items do
begin
k := ItemBar[Item,'',EXG2ANTTLib_TLB.exBarsCount];
AddBar(Item,'Order',OleVariant(DateStart),OleVariant(DateEnd),OleVariant(k),'your text');
end;
OutputDebugString( Items.ItemBar[Item,'',EXG2ANTTLib_TLB.exBarsCount] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarManual;
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
Bars.Copy('Task','Order');
end;
with Items do
begin
AddItem(OleVariant(1));
AddItem(OleVariant(2));
AddItem(OleVariant(3));
end;
EndUpdate();
end
|
1487
|
How can I move more bars by code
with G2antt1 do
begin
Columns.Add('Tasks');
with Chart do
begin
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
PaneWidth[False] := 48;
end;
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/1/2001','1/6/2001','A',Null);
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/7/2001','B',Null);
ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarMove] := OleVariant(1);
ItemBar[0,'<A*>',EXG2ANTTLib_TLB.exBarMove] := OleVariant(1);
ItemBar[0,'<B*>',EXG2ANTTLib_TLB.exBarMove] := OleVariant(1);
end;
end
|
1486
|
How can I move a bar by code
with G2antt1 do
begin
Columns.Add('Tasks');
with Chart do
begin
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
PaneWidth[False] := 48;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/1/2001','1/6/2001','A',Null);
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarMove] := OleVariant(1);
end;
end
|
1485
|
How can I clip the notes to the items zone only

with G2antt1 do
begin
BeginUpdate();
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
AntiAliasing := True;
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 96;
LevelCount := 2;
end;
with Items do
begin
AddItem(Null);
h := AddItem('Task 1');
AddBar(h,'Task','1/5/2001','1/8/2001','1',Null);
end;
with Chart.Notes do
begin
with Add('1',OleVariant(G2antt1.Items.ItemByIndex[1]),'1','<img>2</img>') do
begin
PartShadow[EXG2ANTTLib_TLB.exNoteEnd] := False;
PartBorderSize[EXG2ANTTLib_TLB.exNoteEnd] := 0;
ClearPartBackColor(EXG2ANTTLib_TLB.exNoteEnd);
PartCanMove[EXG2ANTTLib_TLB.exNoteEnd] := True;
RelativePosition := OleVariant(0.5);
PartVOffset[EXG2ANTTLib_TLB.exNoteEnd] := -36;
end;
ClipTo := EXG2ANTTLib_TLB.exNotesClipToItems;
end;
EndUpdate();
end
|
1484
|
How can I put two bars of various types, in the event of conflict do not coincide

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'NewTask';
end;
with Bars.Copy('Task','NewTask') do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task';
Color := $ff;
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1','A1');
AddBar(h,'NewTask','1/3/2001','1/5/2001','A2','A2');
AddBar(h,'NewTask','1/4/2001','1/7/2001','A3','A3');
AddBar(h,'Task','1/4/2001','1/7/2001','A4','A4');
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1483
|
How can I run trigger an event which, after clicking on the item/bar gives the key/name or item id
// MouseDown event - Occurs when the user presses a mouse button.
procedure TForm1.G2antt1MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
item := ItemFromPoint[-1,-1,column,hit];
key := Chart.BarFromPoint[-1,-1];
OutputDebugString( 'Item:' );
OutputDebugString( item );
OutputDebugString( 'Key:' );
OutputDebugString( key );
OutputDebugString( 'CellValue(i,0):' );
OutputDebugString( Items.CellValue[OleVariant(item),OleVariant(0)] );
Items.ItemBar[item,OleVariant(key),EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 64;
LevelCount := 2;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/4/2001','1/6/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
end;
EndUpdate();
end
|
1482
|
How can I change the check-boxes appearance

with G2antt1 do
begin
LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
with (IUnknown(Columns.Add('Default')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with Items do
begin
h := AddItem('Root');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
end;
with VisualAppearance do
begin
Add(1,'XP:Button 3 12');
Add(2,'XP:Button 3 11');
Add(3,'XP:Button 3 10');
end;
CheckImage[EXG2ANTTLib_TLB.Unchecked] := 16777216;
CheckImage[EXG2ANTTLib_TLB.Checked] := 33554432;
CheckImage[EXG2ANTTLib_TLB.PartialChecked] := 50331648;
end
|
1481
|
How can I change the color for the control's split bar (sample 1)

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Default');
Background[EXG2ANTTLib_TLB.exSplitBar] := $10000;
BackColorLevelHeader := BackColor;
with Chart do
begin
LevelCount := 2;
PaneWidth[False] := 64;
HistogramVisible := True;
HistogramHeight := 64;
OverviewHeight := 48;
OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll;
end;
EndUpdate();
end
|
1480
|
Is it possible to display ONLY the working hours

with G2antt1 do
begin
with Chart do
begin
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
with Level[0] do
begin
Label := OleVariant(4096);
Alignment := Integer(EXG2ANTTLib_TLB.exHOutside) Or Integer(EXG2ANTTLib_TLB.CenterAlignment);
end;
with Level[1] do
begin
Label := '<%hh%>';
Count := 6;
end;
UnitWidth := 26;
PaneWidth[False] := 0;
NonworkingHours := 15728895;
ShowNonworkingUnits := False;
ShowNonworkingHours := False;
end;
end
|
1479
|
How can I display the end of the day in the chart's header

with G2antt1 do
begin
with Chart do
begin
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
with Level[0] do
begin
Label := OleVariant(4096);
Alignment := Integer(EXG2ANTTLib_TLB.exHOutside) Or Integer(EXG2ANTTLib_TLB.CenterAlignment);
end;
with Level[1] do
begin
Label := '<%hh%>';
Count := 6;
ReplaceLabel['08'] := '<b>8</b> <font ;6>am';
ReplaceLabel['14'] := '<b>8</b> <font ;6>pm';
end;
UnitWidth := 26;
PaneWidth[False] := 0;
NonworkingHours := 15728895;
ShowNonworkingUnits := False;
ShowNonworkingHours := False;
end;
end
|
1478
|
How can I display the +/- expanding buttons in the chart section

with G2antt1 do
begin
BeginUpdate();
LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
Indent := 13;
HasButtons := EXG2ANTTLib_TLB.exWPlus;
with Chart do
begin
FirstVisibleDate := '12/25/2010';
LevelCount := 2;
PaneWidth[False] := 0;
ColumnsFormatLevel := '0';
SelBackColor := G2antt1.SelBackColor;
SelForeColor := G2antt1.SelForeColor;
end;
with (IUnknown(Columns.Add('P1')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with Items do
begin
h := AddItem('Root');
AddBar(InsertItem(h,Null,'Child 1'),'Task','1/2/2011','1/5/2011',Null,Null);
AddBar(InsertItem(h,Null,'Child 2'),'Task','1/4/2011','1/7/2011',Null,Null);
AddBar(InsertItem(h,Null,'Child 3'),'Task','1/7/2011','1/8/2011',Null,Null);
ExpandItem[h] := True;
end;
EndUpdate();
end
|
1477
|
Is it possible to display the columns in the chart aligned to the right

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 24;
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Key')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
Visible := False;
Alignment := EXG2ANTTLib_TLB.RightAlignment;
end;
with Chart do
begin
FirstVisibleDate := '12/30/2000';
LevelCount := 2;
PaneWidth[False] := 0;
ColumnsFormatLevel := '|,1:52';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Split','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 3'),'Progress','1/3/2001','1/7/2001',Null,Null);
end;
EndUpdate();
end
|
1476
|
How can I display a border in the chart

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 24;
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Key')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
Visible := False;
Alignment := EXG2ANTTLib_TLB.CenterAlignment;
Def[EXG2ANTTLib_TLB.exCellForeColor] := OleVariant(255);
end;
with Chart do
begin
FirstVisibleDate := '12/30/2000';
LevelCount := 2;
PaneWidth[False] := 0;
ColumnsFormatLevel := '1:52,\"\"[bg=255]:2';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Split','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 3'),'Progress','1/3/2001','1/7/2001',Null,Null);
end;
EndUpdate();
end
|
1475
|
How can I change the font to display the columns in the chart (Method 2)

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 24;
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Key')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
Visible := False;
end;
with ConditionalFormats.Add(1,Null) do
begin
Bold := True;
ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($1);
end;
with Chart do
begin
FirstVisibleDate := '12/30/2000';
LevelCount := 2;
PaneWidth[False] := 48;
ColumnsFormatLevel := '1';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Split','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 3'),'Progress','1/3/2001','1/7/2001',Null,Null);
end;
EndUpdate();
end
|
1474
|
How can I change the font to display the columns in the chart (Method 1)

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 24;
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Key')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
Visible := False;
end;
with Chart do
begin
FirstVisibleDate := '12/30/2000';
LevelCount := 2;
PaneWidth[False] := 48;
ColumnsFormatLevel := '1';
ColumnsFont := (IUnknown(G2antt1.Font) as stdole_TLB.StdFont);
with ColumnsFont do
begin
Size := 12;
Name := 'Tahoma';
end;
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Split','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 3'),'Progress','1/3/2001','1/7/2001',Null,Null);
end;
EndUpdate();
end
|
1473
|
How can I change the column's background color when it is displayed on the chart (Method 2)

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Key')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
Visible := False;
end;
with Chart do
begin
FirstVisibleDate := '12/30/2000';
LevelCount := 2;
PaneWidth[False] := 48;
ColumnsFormatLevel := '1[bg=255]:52';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Split','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 3'),'Progress','1/3/2001','1/7/2001',Null,Null);
end;
EndUpdate();
end
|
1472
|
How can I change the column's background color when it is displayed on the chart (Method 1)

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Key')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
Visible := False;
Def[EXG2ANTTLib_TLB.exCellBackColor] := OleVariant(15790320);
end;
with Chart do
begin
FirstVisibleDate := '12/30/2000';
LevelCount := 2;
PaneWidth[False] := 48;
ColumnsFormatLevel := '1:52';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Split','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 3'),'Progress','1/3/2001','1/7/2001',Null,Null);
end;
EndUpdate();
end
|
1471
|
Can the chart display any column

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Start')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
Visible := False;
Alignment := EXG2ANTTLib_TLB.LeftAlignment;
end;
with (IUnknown(Columns.Add('End')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
Visible := False;
Alignment := EXG2ANTTLib_TLB.RightAlignment;
end;
with Chart do
begin
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
PaneWidth[False] := 48;
ColumnsFormatLevel := '1:52,|,2:52';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Task','1/4/2001','1/8/2001',Null,Null);
end;
EndUpdate();
end
|
1470
|
Is it possible to display a check-box column on the chart

with G2antt1 do
begin
Columns.Add('Tasks');
with (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Visible := False;
end;
with Chart do
begin
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
PaneWidth[False] := 48;
ColumnsFormatLevel := '1';
end;
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/3/2001','1/7/2001',Null,Null);
AddBar(AddItem('Task 2'),'Task','1/4/2001','1/8/2001',Null,Null);
end;
end
|
1469
|
Is it possible to disable the cell's editor context menu
with G2antt1 do
begin
with (IUnknown(Columns.Add('Edit')) as EXG2ANTTLib_TLB.Column).Editor do
begin
EditType := EXG2ANTTLib_TLB.EditType;
Option[EXG2ANTTLib_TLB.exEditAllowContextMenu] := OleVariant(False);
end;
with Items do
begin
AddItem(OleVariant(10));
AddItem(OleVariant(20));
end;
end
|
1468
|
How can I find a value in a drop down editor
with G2antt1 do
begin
with (IUnknown(Columns.Add('DropDownList')) as EXG2ANTTLib_TLB.Column).Editor do
begin
EditType := EXG2ANTTLib_TLB.DropDownListType;
AddItem(1,'DDList 1',Null);
AddItem(2,'DDList 2',Null);
AddItem(3,'DDList 3',Null);
end;
with (IUnknown(Columns.Add('DropDown')) as EXG2ANTTLib_TLB.Column).Editor do
begin
EditType := EXG2ANTTLib_TLB.DropDownType;
AddItem(1,'DDType 1',Null);
AddItem(2,'DDType 2',Null);
AddItem(3,'DDType 3',Null);
end;
with Items do
begin
CellValue[OleVariant(.AddItem(OleVariant(1))),OleVariant(1)] := G2antt1.Columns.Item[OleVariant(1)].Editor.FindItem[OleVariant(1)];
CellValue[OleVariant(.AddItem(OleVariant(2))),OleVariant(1)] := G2antt1.Columns.Item[OleVariant(1)].Editor.FindItem[OleVariant(2)];
end;
end
|
1467
|
What is the difference between DropDownType and DropDownListType
with G2antt1 do
begin
with (IUnknown(Columns.Add('DropDownList')) as EXG2ANTTLib_TLB.Column).Editor do
begin
EditType := EXG2ANTTLib_TLB.DropDownListType;
AddItem(1,'First item',Null);
AddItem(2,'Second item',Null);
AddItem(3,'Third item',Null);
end;
with (IUnknown(Columns.Add('DropDown')) as EXG2ANTTLib_TLB.Column).Editor do
begin
EditType := EXG2ANTTLib_TLB.DropDownType;
AddItem(1,'First item',Null);
AddItem(2,'Second item',Null);
AddItem(3,'Third item',Null);
end;
with Items do
begin
CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := 'Any';
CellValue[OleVariant(AddItem(OleVariant(2))),OleVariant(1)] := 'Any';
end;
end
|
1466
|
How can I mark or enlarge the selected bars, so I have a clear frame around (Method 3)

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 32;
with VisualAppearance do
begin
Add(1,'c:\exontrol\images\normal.ebn');
Add(2,'CP:1 -2 -2 2 2');
end;
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2002';
SelBarColor := $2ff0000;
Bars.Item['Task'].Color := $1000000;
end;
Columns.Add('Task');
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/2/2002','1/4/2002','A',Null);
AddBar(h,'Task','1/6/2002','1/10/2002','B',Null);
AddBar(h,'Task','1/11/2002','1/14/2002','C',Null);
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
end;
EndUpdate();
end
|
1465
|
How can I mark or enlarge the selected bars, so I have a clear frame around (Method 2)

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 32;
with VisualAppearance do
begin
Add(1,'c:\exontrol\images\normal.ebn');
Add(2,'CP:1 -2 -2 2 2');
end;
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2002';
SelBarColor := $2000000;
Bars.Item['Task'].Color := $1000000;
end;
Columns.Add('Task');
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/2/2002','1/4/2002','A',Null);
AddBar(h,'Task','1/6/2002','1/10/2002','B',Null);
AddBar(h,'Task','1/11/2002','1/14/2002','C',Null);
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
end;
EndUpdate();
end
|
1464
|
How can I mark or enlarge the selected bars, so I have a clear frame around (Method 1)

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 32;
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZBi' +
'OEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6rY' +
'zuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Txx' +
'gGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4F' +
'4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA==');
Add(2,'CP:1 -2 -2 2 2');
end;
with Chart do
begin
FirstVisibleDate := '1/1/2002';
SelBarColor := $2000000;
PaneWidth[False] := 48;
end;
Columns.Add('Task');
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/2/2002','1/4/2002','A',Null);
AddBar(h,'Task','1/6/2002','1/10/2002','B',Null);
AddBar(h,'Task','1/11/2002','1/14/2002','C',Null);
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
end;
EndUpdate();
end
|
1463
|
How can I load my table from an Access 2007, using ADO
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
with G2antt1 do
begin
with Items do
begin
AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null);
end;
end
end;
with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
FirstVisibleDate := '8/3/1994';
PaneWidth[False] := 256;
LevelCount := 2;
UnitScale := EXG2ANTTLib_TLB.exDay;
FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAllVisible;
end;
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Items.AllowCellValueToItemBar := True;
Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
EndUpdate();
end
|
1462
|
Is it possible to enumerate the links without enumerating them

with G2antt1 do
begin
AntiAliasing := True;
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 128;
NonworkingDays := 0;
LinksWidth := 2;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/6/2001','1/8/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/10/2001','1/12/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/14/2001','1/16/2001','K4',Null);
AddLink('L3',h3,'K3',h4,'K4');
Link['<L*>',EXG2ANTTLib_TLB.exLinkShowDir] := OleVariant(False);
end;
end
|
1461
|
How can I display a vertical line in the chart
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
procedure TForm1.G2antt1Click(ASender: TObject; );
begin
with G2antt1 do
begin
with Chart do
begin
MarkNowColor := $ff;
MarkNow := OleVariant(DateFromPoint[-1,-1]);
end;
end
end;
with G2antt1 do
begin
with Chart do
begin
FirstVisibleDate := '3/13/2012';
PaneWidth[False] := 0;
LevelCount := 2;
MarkNowColor := $0;
MarkNowWidth := 3;
UnitWidth := 32;
ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
end;
end
|
1460
|
How can I use the MarkNowColor to mark a time line different then the time on the machine

with G2antt1 do
begin
with Chart do
begin
FirstVisibleDate := '3/13/2012';
PaneWidth[False] := 0;
LevelCount := 2;
Level[0].Label := OleVariant(1048576);
with Level[1] do
begin
Label := '<%ss%>';
Count := 15;
end;
MarkNowColor := $ff;
MarkNowWidth := 3;
MarkNow := '3/13/2012 12:03:20 AM';
end;
end
|
1459
|
Is it possible to show the current date time using a delay

with G2antt1 do
begin
with Chart do
begin
PaneWidth[False] := 0;
LevelCount := 2;
Level[0].Label := OleVariant(1048576);
with Level[1] do
begin
Label := '<%ss%>';
Count := 15;
end;
MarkNowColor := $ff0000;
MarkNowWidth := 3;
MarkNowDelay := 0.00069444;
end;
Columns.Add('Tasks');
with Items do
begin
AddBar(AddItem('Item 1'),'Task','1/1/2008','1/1/2018',Null,Null);
end;
end
|
1458
|
What are the options to show the links between bars

with G2antt1 do
begin
AntiAliasing := True;
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 128;
NonworkingDays := 0;
LinksWidth := 2;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddItem('');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddItem('');
AddBar(h2,'Task','1/6/2001','1/8/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
h3 := AddItem('Task 3');
AddItem('');
AddBar(h3,'Task','1/12/2001','1/14/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkShowRound] := OleVariant(-1);
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/18/2001','1/20/2001','K4',Null);
AddLink('L3',h3,'K3',h4,'K4');
Link['L3',EXG2ANTTLib_TLB.exLinkShowRound] := OleVariant(1);
AddItem('');
h5 := AddItem('Task 5');
AddBar(h5,'Task','1/22/2001','1/24/2001','K5',Null);
AddLink('L4',h4,'K4',h5,'K5');
Link['L4',EXG2ANTTLib_TLB.exLinkShowRound] := OleVariant(2);
end;
end
|
1457
|
Is it possible to specify the link between bars to be a wider line

with G2antt1 do
begin
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 128;
NonworkingDays := 0;
LinksStyle := EXG2ANTTLib_TLB.exLinkSolid;
LinksWidth := 2;
LinksColor := $ff;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/6/2001','1/8/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/10/2001','1/12/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
end;
end
|
1456
|
Is it possible to create a link between the two specified bars so that the link was a straight line

with G2antt1 do
begin
Columns.Add('Task');
AntiAliasing := True;
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 128;
NonworkingDays := 0;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/6/2001','1/8/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkStyle] := OleVariant(0);
Link['L1',EXG2ANTTLib_TLB.exLinkWidth] := OleVariant(2);
Link['L1',EXG2ANTTLib_TLB.exLinkColor] := OleVariant(255);
Link['L1',EXG2ANTTLib_TLB.exLinkShowRound] := OleVariant(2);
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/10/2001','1/12/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
end;
end
|
1455
|
I associate the bars with my columns, Start and End, but can not get it working for bars with non-empty keys. What am I doing wrong

with G2antt1 do
begin
BeginUpdate();
with Columns do
begin
Add('Tasks');
with (IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A';
end;
with (IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A';
end;
end;
Items.AllowCellValueToItemBar := True;
with Chart do
begin
PaneWidth[False] := 256;
FirstVisibleDate := '1/1/2002';
LevelCount := 2;
Bars.Item['Task'].OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack;
end;
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/4/2002','1/8/2002','A','A');
h := AddItem('Task 2');
AddBar(h,'Task','1/6/2002','1/10/2002','A','A');
AddBar(h,'Task','1/4/2002','1/8/2002','B','B');
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
end;
EndUpdate();
end
|
1454
|
The right pane needs to show ONLY the hours 6am to 9pm (every hour) for one day only and the user should not to be able to scroll left or right nor see any other hours. How can I do that

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
ScrollRange[EXG2ANTTLib_TLB.exStartDate] := '1/1/2001';
ScrollRange[EXG2ANTTLib_TLB.exEndDate] := '1/1/2001';
UnitScale := EXG2ANTTLib_TLB.exHour;
NonworkingHours := 12582975;
ShowNonworkingUnits := False;
ShowNonworkingHours := False;
Level[0].Alignment := Integer(EXG2ANTTLib_TLB.exHOutside) Or Integer(EXG2ANTTLib_TLB.CenterAlignment);
UnitWidth := 18;
PaneWidth[True] := 294;
ScrollBar := False;
end;
OnResizeControl := EXG2ANTTLib_TLB.exDisableSplitter;
EndUpdate();
end
|
1453
|
Is it possible to count only a specified type of bars without enumerating them
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Progress','1/3/2001','1/5/2001',Null,Null);
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','P3','P3');
OutputDebugString( 'K*' );
OutputDebugString( ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarsCount] );
OutputDebugString( 'K* P*' );
OutputDebugString( ItemBar[0,'<K* P*>',EXG2ANTTLib_TLB.exBarsCount] );
end;
end
|
1452
|
How can I count or get the numbers of the bars in the chart
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','A2','A2');
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3','K3');
OutputDebugString( 'All' );
OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] );
OutputDebugString( 'A*' );
OutputDebugString( ItemBar[0,'<A*>',EXG2ANTTLib_TLB.exBarsCount] );
OutputDebugString( 'K*' );
OutputDebugString( ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarsCount] );
end;
end
|
1451
|
Is it possible to remove only specified bars from ALL items at once
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','A2','A2');
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3','K3');
RemoveBar(0,'<K*>');
end;
end
|
1450
|
How can I remove all bars from the chart (method 2)
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','A2','A2');
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3','K3');
ClearBars(0);
end;
end
|
1449
|
How can I remove all bars from the chart (method 1)
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','A2','A2');
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3','K3');
RemoveBar(0,'<*>');
end;
end
|
1448
|
Is it possible to update at once a property for several bars without enumerating them
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','A2','A2');
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3','K3');
ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
end;
end
|
1447
|
Is it possible to update at once a property of ALL bars without enumerating them
with G2antt1 do
begin
Columns.Add('Tasks');
Chart.FirstVisibleDate := '1/1/2001';
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1','K1');
AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','A2','A2');
AddBar(AddItem('Task 3'),'Task','1/2/2001','1/4/2001','K3','K3');
ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
end;
end
|
1446
|
How do I prevent selecting a new item when selecting a bar
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 64;
LevelCount := 2;
SelectOnClick := False;
end;
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1',Null);
AddBar(AddItem('Task 2'),'Task','1/4/2001','1/6/2001','K2',Null);
AddBar(AddItem('Task 3'),'Task','1/8/2001','1/10/2001','K3',Null);
SelectItem[FirstVisibleItem] := True;
end;
EndUpdate();
end
|
1445
|
Is it possible to find out all incoming bars ( recursively )

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarIncomingBarsAllDebug] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1444
|
How do I find the incoming bars
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarIncomingBarsDebug] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1443
|
Is it possible to find out all incoming links ( recursively ). Incoming link is a link from another bar to the current bar
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarIncomingLinksAllAsString] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1442
|
How do I find the incoming links. Incoming link is link from another bar to the current bar
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarIncomingLinksAsString] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1441
|
Is it possible to find out all outgoing bars ( recursively )
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarOutgoingBarsAllDebug] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1440
|
How do I find the outgoing bars
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarOutgoingBarsDebug] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1439
|
Is it possible to find out all outgoing links ( recursively ). Outgoing link is link from a bar to another bar
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarOutgoingLinksAllAsString] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1438
|
How do I find the outgoing links. Outgoing link is link from a bar to another bar
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
b := Chart.BarFromPoint[-1,-1];
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarOutgoingLinksAsString] );
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
LevelCount := 2;
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 96;
NonworkingDays := 0;
AllowLinkBars := True;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','A','A');
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','B','B');
AddLink('L1',h1,'A',h2,'B');
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','C','C');
AddLink('L2',h2,'B',h3,'C');
h4 := AddItem('Task 4');
AddBar(h4,'Task','1/8/2001','1/10/2001','D','D');
AddLink('L3',h1,'A',h4,'D');
end;
EndUpdate();
end
|
1437
|
How do I select a bar using the right-click
// MouseDown event - Occurs when the user presses a mouse button.
procedure TForm1.G2antt1MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
with Items do
begin
ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(False);
ItemBar[G2antt1.ItemFromPoint[-1,-1,c,hit],G2antt1.Chart.BarFromPoint[-1,-1],EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True);
end;
end
end;
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 64;
LevelCount := 2;
end;
with Items do
begin
AddBar(AddItem('Task 1'),'Task','1/2/2001','1/4/2001','K1',Null);
AddBar(AddItem('Task 2'),'Task','1/4/2001','1/6/2001','K2',Null);
AddBar(AddItem('Task 3'),'Task','1/8/2001','1/10/2001','K3',Null);
end;
EndUpdate();
end
|
1436
|
How can I add or change the padding (spaces) for captions in the control's header
with G2antt1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Padding-Left')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exHeaderPaddingLeft] := OleVariant(18);
with (IUnknown(Columns.Add('Padding-Right')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exHeaderPaddingRight] := OleVariant(18);
HeaderAlignment := EXG2ANTTLib_TLB.RightAlignment;
end;
EndUpdate();
end
|
1435
|
Do you have any plans to add cell spacing and cell padding to the cells

with G2antt1 do
begin
BeginUpdate();
DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
with (IUnknown(Columns.Add('Padding-Left')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(18);
end;
(IUnknown(Columns.Add('No-Padding')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
(IUnknown(Columns.Add('Empty')) as EXG2ANTTLib_TLB.Column).Position := 0;
with Items do
begin
CellValue[OleVariant(AddItem('Item A.1')),OleVariant(1)] := 'Item A.2';
CellValue[OleVariant(AddItem('Item B.1')),OleVariant(1)] := 'Item B.2';
CellValue[OleVariant(AddItem('Item C.1')),OleVariant(1)] := 'Item C.2';
end;
EndUpdate();
end
|
1434
|
Can I display somehow the filter just on the top of the list, with an editor associated to each column

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
with G2antt1 do
begin
with Items do
begin
AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null);
end;
end
end;
// Change event - Occurs when the user changes the cell's content.
procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with G2antt1 do
begin
OutputDebugString( 'Locked:' );
OutputDebugString( Items.IsItemLocked[Item] );
with Columns.Item[OleVariant(ColIndex)] do
begin
Filter := NewValue;
FilterType := EXG2ANTTLib_TLB.exPattern;
end;
ApplyFilter();
end
end;
// MouseUp event - Occurs when the user releases a mouse button.
procedure TForm1.G2antt1MouseUp(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with G2antt1 do
begin
Edit(Items.LockedItem[EXG2ANTTLib_TLB.exTop,0]);
end
end;
with G2antt1 do
begin
ColumnAutoResize := False;
ScrollBySingleLine := True;
ContinueColumnScroll := False;
Chart.FirstVisibleDate := '8/3/1994';
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
with Items do
begin
LockedItemCount[EXG2ANTTLib_TLB.exTop] := 2;
h := LockedItem[EXG2ANTTLib_TLB.exTop,0];
CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.EditType;
h := LockedItem[EXG2ANTTLib_TLB.exTop,1];
ItemHeight[h] := 4;
ItemDivider[h] := 0;
SelectableItem[h] := False;
end;
end
|
1433
|
Is it possible to display information about the firing events
// Event event - Notifies the application once the control fires an event.
procedure TForm1.G2antt1Event(ASender: TObject; EventID : Integer);
begin
with G2antt1 do
begin
OutputDebugString( EventParam[-2] );
end
end;
|
1432
|
I need to specify the start and end dates of the bar to be the same, but to keep count of the working units. Is it possible

with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Tasks');
(IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
(IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
end;
with Chart do
begin
FirstVisibleDate := '9/20/2006';
LevelCount := 2;
PaneWidth[False] := 256;
ShowEmptyBars := 1;
Bars.Add('Task:Split').Shortcut := 'Task';
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','9/21/2006','9/21/2006',Null,Null);
AddBar(AddItem('Task 2'),'Task','9/22/2006','9/25/2006',Null,Null);
AddBar(AddItem('Task 3'),'Task','9/25/2006','9/25/2006',Null,Null);
ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
end;
EndUpdate();
end
|
1431
|
I need to specify the start and end dates of the bar to be the same, but no bars are shown. (NOT recommended for bars with exBarKeepWorkingCount ) What I can do

with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Tasks');
(IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
(IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
end;
with Chart do
begin
FirstVisibleDate := '9/20/2006';
LevelCount := 2;
PaneWidth[False] := 256;
ShowEmptyBars := 1;
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','9/21/2006','9/21/2006',Null,Null);
AddBar(AddItem('Task 2'),'Task','9/22/2006','9/22/2006',Null,Null);
AddBar(AddItem('Task 3'),'Task','9/25/2006','9/25/2006',Null,Null);
end;
EndUpdate();
end
|
1430
|
I need my chart to display the end date with on day less. How can I do this (Method 2)

with G2antt1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Tasks');
with (IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
Editor.EditType := EXG2ANTTLib_TLB.DateType;
end;
with (IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
Editor.EditType := EXG2ANTTLib_TLB.DateType;
end;
end;
with Chart do
begin
FirstVisibleDate := '9/20/2006';
LevelCount := 2;
PaneWidth[False] := 256;
NonworkingDays := 0;
end;
with Items do
begin
AllowCellValueToItemBar := True;
AddBar(AddItem('Task 1'),'Task','9/21/2006','9/24/2006',Null,Null);
AddBar(AddItem('Task 2'),'Task','9/22/2006','9/25/2006',Null,Null);
AddBar(AddItem('Task 3'),'Task','9/23/2006','9/26/2006',Null,Null);
end;
EndUpdate();
end
|
1429
|
Is it possible to change the width of a specified time unit

with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
PaneWidth[False] := 0;
LevelCount := 2;
FirstVisibleDate := '1/1/2008';
AllowInsideZoom := True;
AllowResizeInsideZoom := False;
InsideZoomOnDblClick := False;
DefaultInsideZoomFormat.BackColorChart := $ff00ff;
with InsideZooms do
begin
SplitBaseLevel := False;
DefaultWidth := 18;
with Add('1/15/2008') do
begin
AllowInsideFormat := False;
Width := 128;
end;
end;
end;
EndUpdate();
end
|
1428
|
The level unit of the chart is set to day, so i'd like to set the whole background of the current day. Is it possible to set a background color only on the current day (Method 2)

with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
PaneWidth[False] := 0;
LevelCount := 2;
FirstVisibleDate := '1/1/2008';
AllowInsideZoom := True;
AllowResizeInsideZoom := False;
InsideZoomOnDblClick := False;
DefaultInsideZoomFormat.BackColorChart := $ff;
with InsideZooms do
begin
SplitBaseLevel := False;
DefaultWidth := 18;
Add('1/15/2008').AllowInsideFormat := False;
end;
end;
EndUpdate();
end
|
1427
|
The level unit of the chart is set to day, so i'd like to set the whole background of the current day. Is it possible to set a background color only on the current day (Method 1)
with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
PaneWidth[False] := 0;
FirstVisibleDate := '1/1/2008';
MarkTodayColor := BackColor;
LevelCount := 2;
MarkSelectDateColor := $7fff0000;
SelectLevel := 1;
SelectDate['1/15/2008'] := True;
end;
EndUpdate();
end
|
1426
|
How can I change the layout of my columns when using the exCRD

with G2antt1 do
begin
BeginUpdate();
DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
DefaultItemHeight := 36;
with Columns do
begin
with (IUnknown(Add('Column1')) as EXG2ANTTLib_TLB.Column) do
begin
Visible := False;
Editor.EditType := EXG2ANTTLib_TLB.EditType;
end;
with (IUnknown(Add('Column2')) as EXG2ANTTLib_TLB.Column) do
begin
Visible := False;
Editor.EditType := EXG2ANTTLib_TLB.EditType;
end;
(IUnknown(Add('Column3')) as EXG2ANTTLib_TLB.Column).Visible := False;
with (IUnknown(Add('FormatLevel')) as EXG2ANTTLib_TLB.Column) do
begin
FormatLevel := '(0/1),2';
Def[EXG2ANTTLib_TLB.exCellFormatLevel] := OleVariant(FormatLevel);
end;
end;
with Items do
begin
h := AddItem('Cell 1.1');
CellValue[OleVariant(h),OleVariant(1)] := 'Cell 1.2';
CellValue[OleVariant(h),OleVariant(2)] := 'Cell 1.3';
h := AddItem('Cell 2.1');
CellValue[OleVariant(h),OleVariant(1)] := 'Cell 2.2';
CellValue[OleVariant(h),OleVariant(2)] := 'Cell 2.3';
end;
EndUpdate();
end
|
1425
|
How can I overlaid a single bar

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidGroup := 'OTask';
OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsNone;
Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
end;
with Bars.Copy('Task','OTask') do
begin
OverlaidGroup := 'Task';
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStrict) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsCascade);
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
AddBar(h,'OTask','1/3/2001','1/5/2001','A2',Null);
ItemBar[h,'A2',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
AddBar(h,'Task','1/5/2001','1/8/2001','A4',Null);
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1424
|
How can I use the exOverlaidBarsCascade, exBarOverlaidKey

// CreateBar event - Fired when the user creates a new bar.
procedure TForm1.G2antt1CreateBar(ASender: TObject; Item : HITEM;DateStart : TDateTime;DateEnd : TDateTime);
begin
with G2antt1 do
begin
Items.ItemBar[Item,'newbar',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level0';
end
end;
with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
ItemBar[h,'A1',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level0';
AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
ItemBar[h,'A3',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level0';
AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
ItemBar[h,'A2',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
ItemBar[h,'A2',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level1';
AddBar(h,'Task','1/5/2001','1/8/2001','A4',Null);
ItemBar[h,'A4',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
ItemBar[h,'A4',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level1';
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1423
|
How can I use the exOverlaidBarsStack+exOverlaidBarsStackAutoArrange

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
AddBar(h,'Task','1/5/2001','1/8/2001','A4',Null);
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1422
|
How can I use the exOverlaidBarsStack

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack;
Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
AddBar(h,'Task','1/5/2001','1/8/2001','A4',Null);
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1421
|
How can I use the exOverlaidBarsIntersect

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsIntersect;
Overlaid[EXG2ANTTLib_TLB.exOverlaidBarsIntersect] := 'Progress';
Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
AddBar(h,'Task','1/5/2001','1/8/2001','A4',Null);
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1420
|
How can I use the exOverlaidBarsOffset

with G2antt1 do
begin
BeginUpdate();
DefaultItemHeight := 22;
Columns.Add('Task');
ScrollBySingleLine := True;
BackColorAlternate := RGB(240,240,240);
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '12/28/2000';
LevelCount := 2;
with Bars.Item['Task'] do
begin
OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsOffset;
Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
end;
end;
with Items do
begin
h1 := AddItem('Default');
h := AddItem('Overlaid');
AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
AddBar(h,'Task','1/5/2001','1/8/2001','A4',Null);
h1 := AddItem('Default');
end;
EndUpdate();
end
|
1419
|
Is it possible to specify the end of the project when using the SchedulePDM method
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 48;
LevelCount := 2;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'SS';
Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(0);
Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(0);
DefSchedulePDM[EXG2ANTTLib_TLB.exPDMScheduleType] := OleVariant(2);
DefSchedulePDM[EXG2ANTTLib_TLB.exPDMScheduleDate] := '1/8/2001';
SchedulePDM(0,'K1');
end;
EndUpdate();
end
|
1418
|
Is it possible to specify the start of the project when using the SchedulePDM method
with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
FirstVisibleDate := '12/28/2000';
PaneWidth[False] := 48;
LevelCount := 2;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/2/2001','1/5/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'FS';
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/2/2001','1/6/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'SS';
Link['L2',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(0);
Link['L2',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(0);
DefSchedulePDM[EXG2ANTTLib_TLB.exPDMScheduleType] := OleVariant(1);
DefSchedulePDM[EXG2ANTTLib_TLB.exPDMScheduleDate] := '1/8/2001';
SchedulePDM(0,'K1');
end;
EndUpdate();
end
|
1417
|
How can I change the caption or the addition information being displayed in the Zoom-OnFly view

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
AllowZoomOnFly := EXG2ANTTLib_TLB.exZoomOnFly;
ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
Label[EXG2ANTTLib_TLB.exHour] := '<font ;5><b><%h%><br><%AM/PM%></b></font>';
ZoomOnFlyCaption := '<br><c><b><font ;12><%=%C0 + '' / <fgcolor=00FF00>'' + %3%></font></fgcolor></b><br><solidline><upline><b>Start</b>:<%=%1%><br><b>' +
'End</b>:<%=%2%><br><b>Duration</b>:<%=round(%2-%1) + '' days''%><br><b>Working</b>:<%=''<b>'' + int(%258) + ''</b> days'' + (0:=(%258 ' +
'- int(%258)) ? ('' <fgcolor=FF0000><b>'' + round(24 * =:0) + ''</b> hours'') : '''') %>';
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/10/2001','T1','T1');
AddBar(h,'Task','1/11/2001','1/14/2001','T3','T3');
h := AddItem(Null);
AddBar(h,'','1/15/2001','1/15/2001','','Focus the chart ( click here ), and press the <b>CTRL + SHIFT</b>, so the Zoom-OnFly is shown.');
SelectableItem[h] := False;
end;
EndUpdate();
end
|
1416
|
How can I change the scale in the Zoom-OnFly view

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
AllowZoomOnFly := EXG2ANTTLib_TLB.exZoomOnFly;
ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
Label[EXG2ANTTLib_TLB.exHour] := '<font ;5><b><%h%><br><%AM/PM%></b></font>';
ZoomOnFlyCaption := '';
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/10/2001','T1','T1');
AddBar(h,'Task','1/11/2001','1/14/2001','T3','T3');
h := AddItem(Null);
AddBar(h,'','1/15/2001','1/15/2001','','Focus the chart ( click here ), and press the <b>CTRL + SHIFT</b>, so the Zoom-OnFly is shown.');
SelectableItem[h] := False;
end;
EndUpdate();
end
|
1415
|
Is it possible to change the Zoom-OnFly view's background color

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
AllowZoomOnFly := EXG2ANTTLib_TLB.exZoomOnFly;
BackColorZoomOnFly := $f0f0f0;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/10/2001','T1','T1');
AddBar(h,'Task','1/11/2001','1/14/2001','T3','T3');
h := AddItem(Null);
AddBar(h,'','1/15/2001','1/15/2001','','Focus the chart ( click here ), and press the <b>CTRL + SHIFT</b>, so the Zoom-OnFly is shown.');
SelectableItem[h] := False;
end;
EndUpdate();
end
|
1414
|
How can I include the selected items in the Zoom-OnFly view

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
AllowZoomOnFly := Integer(EXG2ANTTLib_TLB.exZoomOnFlyIncludeSelectedItems) Or Integer(EXG2ANTTLib_TLB.exZoomOnFly);
SelBackColor := $f0f0f0;
SelectOnClick := False;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/10/2001','T1','T1');
SelectItem[h] := True;
h := AddItem('Task 2');
AddBar(h,'Task','1/11/2001','1/14/2001','T2','T2');
h := AddItem('Task 3');
AddBar(h,'Task','1/8/2001','1/12/2001','T3','T3');
h := AddItem(Null);
AddBar(h,'','1/15/2001','1/15/2001','','Focus the chart ( click here ), and press the <b>CTRL + SHIFT</b>, so the Zoom-OnFly is shown.');
SelectableItem[h] := False;
end;
EndUpdate();
end
|
1413
|
Is it possible to include the neighbors items in the Zoom-OnFly view

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
LevelCount := 2;
AllowZoomOnFly := Integer(EXG2ANTTLib_TLB.exZoomOnFlyIncludeNeighborItems) Or Integer(EXG2ANTTLib_TLB.exZoomOnFly);
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/10/2001','T1','T1');
h := AddItem('Task 2');
AddBar(h,'Task','1/11/2001','1/14/2001','T3','T3');
h := AddItem('Task 3');
AddBar(h,'Task','1/8/2001','1/12/2001','T1','T1');
h := AddItem(Null);
AddBar(h,'','1/15/2001','1/15/2001','','Focus the chart ( click here ), and press the <b>CTRL + SHIFT</b>, so the Zoom-OnFly is shown.');
SelectableItem[h] := False;
end;
EndUpdate();
end
|
1412
|
How can I enable the Zoom-OnFly view

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Task');
with Chart do
begin
PaneWidth[False] := 48;
FirstVisibleDate := '11/5/2000';
LevelCount := 2;
UnitScale := EXG2ANTTLib_TLB.exWeek;
ResizeUnitScale := EXG2ANTTLib_TLB.exDay;
AllowZoomOnFly := EXG2ANTTLib_TLB.exZoomOnFly;
Bars.Item['Task'].OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/17/2001','T1','T1');
AddBar(h,'Task','1/18/2001','2/24/2001','T3','T3');
h := AddItem(Null);
AddBar(h,'','1/15/2001','1/15/2001','','Focus the chart ( click here ), and press the <b>CTRL + SHIFT</b>, so the Zoom-OnFly is shown.');
SelectableItem[h] := False;
end;
EndUpdate();
end
|
1411
|
I am using the overlay bars on stack, can I somehow tell a type of bar, or a specific bar, to be always on top of all other’s. Like a Z-Index or something

with G2antt1 do
begin
BeginUpdate();
ScrollBySingleLine := True;
Columns.Add('Task');
DrawGridLines := EXG2ANTTLib_TLB.exHLines;
with Chart do
begin
DrawGridLines := EXG2ANTTLib_TLB.exHLines;
AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
AllowLinkBars := False;
ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
PaneWidth[False] := 48;
FirstVisibleDate := '1/1/2001';
Bars.Item['Task'].OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/7/2001','1/10/2001','A1','A1');
AddBar(h,'Task','1/8/2001','1/12/2001','A3','A3');
ItemBar[h,'A3',EXG2ANTTLib_TLB.exBarColor] := OleVariant(65280);
h := AddItem('Task 2');
AddBar(h,'Task','1/7/2001','1/10/2001','A31','A31');
AddBar(h,'Task','1/8/2001','1/12/2001','A3','A3');
ItemBar[h,'A3',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
AddBar(AddItem(Null),'','1/10/2001','1/10/2001',Null,'The <b>Key</b> of the bar specifies the Z-Order when overlaying.');
end;
EndUpdate();
end
|
1410
|
Is it possible to specify the z-order when using the overlaying feature

with G2antt1 do
begin
BeginUpdate();
Columns.Add('Tasks');
with Chart do
begin
NonworkingDays := 0;
FirstVisibleDate := '9/17/2006';
PaneWidth[False] := 64;
LevelCount := 2;
Bars.Item['Task'].OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
end;
with Items do
begin
h1 := AddItem('Task');
AddBar(h1,'Task','9/21/2006','9/27/2006','K1','K1');
AddBar(h1,'Task','9/23/2006','9/24/2006','K2','K2');
AddBar(h1,'Task','9/22/2006','9/25/2006','K3','K3');
AddBar(h1,'Task','9/21/2006','9/27/2006','T1','T1');
AddBar(h1,'Task','9/28/2006','9/29/2006','T2','T2');
AddBar(h1,'Task','9/30/2006','10/3/2006','T3','T3');
ItemBar[0,'<T*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(65280);
ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'A';
ItemBar[0,'<T*>',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'B';
end;
EndUpdate();
end
|
1409
|
I seen that there is no exBarStartColor, exBarEndColor, similar to exBarColor, is there any solution so I can display a different Start/End Color

with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
FirstVisibleDate := '1/1/2001';
with Bars.Copy('Summary','Aka1') do
begin
StartColor := $ff;
EndColor := $ff0000;
end;
with Bars.Copy('Summary','Aka2') do
begin
StartColor := $ff00;
EndColor := $ff00ff;
end;
end;
Columns.Add('Column');
with Items do
begin
h := AddItem('Item A');
AddBar(h,'Task','1/2/2001','1/6/2001','B1',Null);
ItemBar[h,'B1',EXG2ANTTLib_TLB.exBarName] := 'Aka1';
h := AddItem('Item B');
AddBar(h,'Task','1/2/2001','1/6/2001','B2',Null);
ItemBar[h,'B2',EXG2ANTTLib_TLB.exBarName] := 'Aka2';
end;
EndUpdate();
end
|
1408
|
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
with G2antt1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
HTMLPicture['p1'] := 'c:\exontrol\images\card.png';
HTMLPicture['p2'] := 'c:\exontrol\images\sun.png';
AutoDrag := EXG2ANTTLib_TLB.exAutoDragCopySnapShot;
LinesAtRoot := EXG2ANTTLib_TLB.exNoLinesAtRoot;
HasLines := EXG2ANTTLib_TLB.exThinLine;
ShowFocusRect := False;
DefaultItemHeight := 26;
Columns.Add('Task');
with Chart do
begin
ShowNonworkingDates := False;
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 96;
LevelCount := 2;
with Bars.Item['Task'] do
begin
Color := $1000000;
Height := 18;
end;
end;
with Items do
begin
h := AddItem('<img>p1:32</img>Group 1');
CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
ItemDivider[h] := 0;
ItemBold[h] := True;
h1 := InsertItem(h,Null,'Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := InsertItem(h,Null,'Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'L1';
h3 := InsertItem(h,Null,'Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'L2';
h := AddItem('<img>p2:32</img>Group 2');
CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
ItemBold[h] := True;
ItemDivider[h] := 0;
h1 := InsertItem(h,Null,'Task');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
ExpandItem[0] := True;
end;
EndUpdate();
end
|
1407
|
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image
with G2antt1 do
begin
BeginUpdate();
HTMLPicture['p1'] := 'c:\exontrol\images\card.png';
HTMLPicture['p2'] := 'c:\exontrol\images\sun.png';
Chart.PaneWidth[True] := 0;
var_HTMLPicture := HTMLPicture['aka1'];
HeaderHeight := 24;
DefaultItemHeight := 48;
DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
GridLineColor := RGB(240,240,240);
SelBackMode := EXG2ANTTLib_TLB.exTransparent;
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Columns.Item[OleVariant(0)].Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
Columns.Item[OleVariant(0)].FormatColumn := 'value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`';
Columns.Item[OleVariant(0)].Width := 112;
Columns.Item[OleVariant(1)].Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(1);
Columns.Item[OleVariant(2)].LevelKey := '1';
Columns.Item[OleVariant(3)].LevelKey := '1';
Columns.Item[OleVariant(4)].LevelKey := '1';
AutoDrag := EXG2ANTTLib_TLB.exAutoDragCopyImage;
SingleSel := False;
with Items do
begin
h := ItemByIndex[1];
SelectItem[h] := True;
h := ItemByIndex[2];
SelectItem[h] := True;
h := ItemByIndex[3];
SelectItem[h] := True;
LockedItemCount[EXG2ANTTLib_TLB.exBottom] := 1;
h := LockedItem[EXG2ANTTLib_TLB.exBottom,0];
CellValue[OleVariant(h),OleVariant(1)] := '<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ...';
CellSingleLine[OleVariant(h),OleVariant(1)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
CellValueFormat[OleVariant(h),OleVariant(1)] := EXG2ANTTLib_TLB.exHTML;
CellHAlignment[OleVariant(h),OleVariant(1)] := EXG2ANTTLib_TLB.CenterAlignment;
ItemDivider[h] := 1;
ItemDividerLineAlignment[h] := EXG2ANTTLib_TLB.DividerTop;
end;
EndUpdate();
end
|
1406
|
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

with G2antt1 do
begin
BeginUpdate();
Chart.PaneWidth[True] := 0;
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Columns.Item[OleVariant(2)].LevelKey := '1';
Columns.Item[OleVariant(3)].LevelKey := '1';
Columns.Item[OleVariant(4)].LevelKey := '1';
AutoDrag := EXG2ANTTLib_TLB.exAutoDragCopyText;
SingleSel := False;
with Items do
begin
h := ItemByIndex[1];
SelectItem[h] := True;
h := ItemByIndex[3];
SelectItem[h] := True;
h := ItemByIndex[4];
SelectItem[h] := True;
h := ItemByIndex[5];
SelectItem[h] := True;
LockedItemCount[EXG2ANTTLib_TLB.exBottom] := 1;
h := LockedItem[EXG2ANTTLib_TLB.exBottom,0];
CellValue[OleVariant(h),OleVariant(0)] := '<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ...';
CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
CellHAlignment[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.CenterAlignment;
ItemDivider[h] := 0;
ItemDividerLineAlignment[h] := EXG2ANTTLib_TLB.DividerTop;
end;
EndUpdate();
end
|
1405
|
Is it possible to change the indentation during the drag and drop
with G2antt1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
AutoDrag := EXG2ANTTLib_TLB.exAutoDragPositionAny;
LinesAtRoot := EXG2ANTTLib_TLB.exNoLinesAtRoot;
HasLines := EXG2ANTTLib_TLB.exSolidLine;
HasButtons := EXG2ANTTLib_TLB.exWPlus;
ShowFocusRect := False;
SelBackMode := EXG2ANTTLib_TLB.exTransparent;
Columns.Add('Task');
with Chart do
begin
ShowNonworkingDates := False;
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 128;
LevelCount := 2;
Bars.Item['Task'].Color := $1000000;
end;
with Items do
begin
h := AddItem('Group 1');
ItemBold[h] := True;
ItemDivider[h] := 0;
h1 := InsertItem(h,Null,'Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := InsertItem(h1,Null,'Task 2');
AddBar(h2,'Task','1/15/2001','1/17/2001','K4',Null);
h2 := InsertItem(h1,Null,'Task 3');
AddBar(h2,'Task','1/5/2001','1/7/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'L1';
h3 := InsertItem(h,Null,'Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'L2';
ExpandItem[h] := True;
ExpandItem[h1] := True;
h := AddItem('Group 2');
ItemBold[h] := True;
ItemDivider[h] := 0;
LockedItemCount[EXG2ANTTLib_TLB.exBottom] := 1;
h := LockedItem[EXG2ANTTLib_TLB.exBottom,0];
CellValue[OleVariant(h),OleVariant(0)] := 'Click a row, and move by dragging <b>up, down</b> to change the row''s parent or <b>left,right</b> to increase or decrease the in' +
'dentation.';
CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
end;
EndUpdate();
end
|
1404
|
Is it possible to allow moving an item to another, but keeping its indentation
with G2antt1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
AutoDrag := EXG2ANTTLib_TLB.exAutoDragPositionKeepIndent;
LinesAtRoot := EXG2ANTTLib_TLB.exNoLinesAtRoot;
HasLines := EXG2ANTTLib_TLB.exThinLine;
ShowFocusRect := False;
Columns.Add('Task');
with Chart do
begin
ShowNonworkingDates := False;
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 96;
LevelCount := 2;
Bars.Item['Task'].Color := $1000000;
end;
with Items do
begin
h := AddItem('Group 1');
ItemDivider[h] := 0;
ItemBold[h] := True;
h1 := InsertItem(h,Null,'Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := InsertItem(h,Null,'Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'L1';
h3 := InsertItem(h,Null,'Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'L2';
ExpandItem[h] := True;
h := AddItem('Group 2');
ItemBold[h] := True;
ItemDivider[h] := 0;
end;
EndUpdate();
end
|
1403
|
How can I change the row's position to another, by drag and drop. Is it possible
with G2antt1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
AutoDrag := EXG2ANTTLib_TLB.exAutoDragPosition;
Columns.Add('Task');
with Chart do
begin
ShowNonworkingDates := False;
FirstVisibleDate := '12/29/2000';
PaneWidth[False] := 64;
LevelCount := 2;
Bars.Item['Task'].Color := $1000000;
end;
with Items do
begin
h1 := AddItem('Task 1');
AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
h2 := AddItem('Task 2');
AddBar(h2,'Task','1/5/2001','1/7/2001','K2',Null);
AddLink('L1',h1,'K1',h2,'K2');
Link['L1',EXG2ANTTLib_TLB.exLinkText] := 'L1';
h3 := AddItem('Task 3');
AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
AddLink('L2',h2,'K2',h3,'K3');
Link['L2',EXG2ANTTLib_TLB.exLinkText] := 'L2';
end;
EndUpdate();
end
|
1402
|
Is it possible to scroll the control's content by clicking and moving the mouse up or down

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
with G2antt1 do
begin
with Items do
begin
AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null);
end;
end
end;
with G2antt1 do
begin
BeginUpdate();
with Chart do
begin
FirstVisibleDate := '8/3/1994';
PaneWidth[False] := 256;
LevelCount := 2;
UnitScale := EXG2ANTTLib_TLB.exDay;
FirstWeekDay := EXG2ANTTLib_TLB.exMonday;
OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAllVisible;
end;
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
AutoDrag := EXG2ANTTLib_TLB.exAutoDragScroll;
EndUpdate();
end
|
1401
|
How can I display bars so they fit the entire height ( height of the row )

with G2antt1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
DefaultItemHeight := 36;
with Chart do
begin
PaneWidth[False] := 164;
FirstVisibleDate := '1/1/2001';
UnitWidth := 48;
LevelCount := 2;
UnitScale := EXG2ANTTLib_TLB.exHour;
NonworkingHours := 16253183;
ShowNonworkingUnits := False;
UnitWidth := 16;
FirstVisibleDate := '1/1/2012 8:00:00 AM';
DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
Bars.Add('Empty').Pattern := EXG2ANTTLib_TLB.exPatternEmpty;
with Level[0] do
begin
Alignment := Integer(EXG2ANTTLib_TLB.exHOutside) Or Integer(EXG2ANTTLib_TLB.CenterAlignment);
Label := '<%d2%>';
end;
AllowLinkBars := False;
AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
BarsAllowSizing := False;
AllowSelectObjects := EXG2ANTTLib_TLB.exNoSelectObjects;
end;
DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
ShowFocusRect := False;
with Columns do
begin
with (IUnknown(Add('CA')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False);
Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
end;
with (IUnknown(Add('CB')) as EXG2ANTTLib_TLB.Column) do
begin
Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False);
Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
end;
end;
with Items do
begin
h := AddItem('Address 1.1<br>Line 2.1<br>C1');
ItemMaxHeight[h] := 96;
CellValue[OleVariant(h),OleVariant(1)] := 'Address 1.2<br>Line 2.2<br>C2';
AddBar(h,'Empty','1/2/2012 8:00:00 AM','1/2/2012 7:00:00 PM','A','This is a bit of text<br>being <font ;9>displayed ion the <b>bar A');
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarBackColor] := OleVariant(16777471);
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(0);
ItemBar[h,'A',EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(2);
AddBar(h,'Empty','1/3/2012 8:00:00 AM','1/3/2012 7:00:00 PM','B','<fgcolor=FFFFFF>This is a bit of text<br><fgcolor=FFFFFF>being <font ;9>displayed ion the <b>bar B');
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarBackColor] := OleVariant(33488896);
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(2);
ItemBar[h,'B',EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(0);
AddBar(h,'Empty','1/4/2012 8:00:00 AM','1/4/2012 7:00:00 PM','C','<font Tahoma;12><b>bar C');
ItemBar[h,'C',EXG2ANTTLib_TLB.exBarBackColor] := OleVariant(33489151);
end;
EndUpdate();
end
|